module.exports = function (req, res) {
  const perPage = 10;
  const page = req.query.page || 1;
  let items = data.concat();

  if (req.query.keywords) {
    const keywords = req.query.keywords;
    items = items.filter(function (item) {
      return ~JSON.stringify(item).indexOf(keywords);
    });
  }

  const ret = {
    status: 0,
    msg: 'ok',
    data: {
      count: items.length,
      rows: items.concat().splice((page - 1) * perPage, perPage),
      columns: [
        {
          label: 'ID',
          name: 'id'
        },
        {
          label: '引擎',
          name: 'engine'
        },
        {
          label: '浏览器',
          name: 'browser'
        },
        {
          label: '平台',
          name: 'platform'
        }
      ]
    }
  };

  res.json(ret);
};

const data = [
  {
    engine: 'Trident',
    browser: 'Internet Explorer 4.0',
    platform: 'Win 95+',
    version: '4',
    grade: 'X'
  },
  {
    engine: 'Trident',
    browser: 'Internet Explorer 5.0',
    platform: 'Win 95+',
    version: '5',
    grade: 'C'
  },
  {
    engine: 'Trident',
    browser: 'Internet Explorer 5.5',
    platform: 'Win 95+',
    version: '5.5',
    grade: 'A'
  },
  {
    engine: 'Trident',
    browser: 'Internet Explorer 6',
    platform: 'Win 98+',
    version: '6',
    grade: 'A'
  },
  {
    engine: 'Trident',
    browser: 'Internet Explorer 7',
    platform: 'Win XP SP2+',
    version: '7',
    grade: 'A'
  },
  {
    engine: 'Trident',
    browser: 'AOL browser (AOL desktop)',
    platform: 'Win XP',
    version: '6',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Firefox 1.0',
    platform: 'Win 98+ / OSX.2+',
    version: '1.7',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Firefox 1.5',
    platform: 'Win 98+ / OSX.2+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Firefox 2.0',
    platform: 'Win 98+ / OSX.2+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Firefox 3.0',
    platform: 'Win 2k+ / OSX.3+',
    version: '1.9',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Camino 1.0',
    platform: 'OSX.2+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Camino 1.5',
    platform: 'OSX.3+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Netscape 7.2',
    platform: 'Win 95+ / Mac OS 8.6-9.2',
    version: '1.7',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Netscape Browser 8',
    platform: 'Win 98SE+',
    version: '1.7',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Netscape Navigator 9',
    platform: 'Win 98+ / OSX.2+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.0',
    platform: 'Win 95+ / OSX.1+',
    version: '1',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.1',
    platform: 'Win 95+ / OSX.1+',
    version: '1.1',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.2',
    platform: 'Win 95+ / OSX.1+',
    version: '1.2',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.3',
    platform: 'Win 95+ / OSX.1+',
    version: '1.3',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.4',
    platform: 'Win 95+ / OSX.1+',
    version: '1.4',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.5',
    platform: 'Win 95+ / OSX.1+',
    version: '1.5',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.6',
    platform: 'Win 95+ / OSX.1+',
    version: '1.6',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.7',
    platform: 'Win 98+ / OSX.1+',
    version: '1.7',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Mozilla 1.8',
    platform: 'Win 98+ / OSX.1+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Seamonkey 1.1',
    platform: 'Win 98+ / OSX.2+',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Gecko',
    browser: 'Epiphany 2.20',
    platform: 'Gnome',
    version: '1.8',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'Safari 1.2',
    platform: 'OSX.3',
    version: '125.5',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'Safari 1.3',
    platform: 'OSX.3',
    version: '312.8',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'Safari 2.0',
    platform: 'OSX.4+',
    version: '419.3',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'Safari 3.0',
    platform: 'OSX.4+',
    version: '522.1',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'OmniWeb 5.5',
    platform: 'OSX.4+',
    version: '420',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'iPod Touch / iPhone',
    platform: 'iPod',
    version: '420.1',
    grade: 'A'
  },
  {
    engine: 'Webkit',
    browser: 'S60',
    platform: 'S60',
    version: '413',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 7.0',
    platform: 'Win 95+ / OSX.1+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 7.5',
    platform: 'Win 95+ / OSX.2+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 8.0',
    platform: 'Win 95+ / OSX.2+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 8.5',
    platform: 'Win 95+ / OSX.2+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 9.0',
    platform: 'Win 95+ / OSX.3+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 9.2',
    platform: 'Win 88+ / OSX.3+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera 9.5',
    platform: 'Win 88+ / OSX.3+',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Opera for Wii',
    platform: 'Wii',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Nokia N800',
    platform: 'N800',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Presto',
    browser: 'Nintendo DS browser',
    platform: 'Nintendo DS',
    version: '8.5',
    grade: 'C'
  },
  {
    engine: 'KHTML',
    browser: 'Konqureror 3.1',
    platform: 'KDE 3.1',
    version: '3.1',
    grade: 'C'
  },
  {
    engine: 'KHTML',
    browser: 'Konqureror 3.3',
    platform: 'KDE 3.3',
    version: '3.3',
    grade: 'A'
  },
  {
    engine: 'KHTML',
    browser: 'Konqureror 3.5',
    platform: 'KDE 3.5',
    version: '3.5',
    grade: 'A'
  },
  {
    engine: 'Tasman',
    browser: 'Internet Explorer 4.5',
    platform: 'Mac OS 8-9',
    version: '-',
    grade: 'X'
  },
  {
    engine: 'Tasman',
    browser: 'Internet Explorer 5.1',
    platform: 'Mac OS 7.6-9',
    version: '1',
    grade: 'C'
  },
  {
    engine: 'Tasman',
    browser: 'Internet Explorer 5.2',
    platform: 'Mac OS 8-X',
    version: '1',
    grade: 'C'
  },
  {
    engine: 'Misc',
    browser: 'NetFront 3.1',
    platform: 'Embedded devices',
    version: '-',
    grade: 'C'
  },
  {
    engine: 'Misc',
    browser: 'NetFront 3.4',
    platform: 'Embedded devices',
    version: '-',
    grade: 'A'
  },
  {
    engine: 'Misc',
    browser: 'Dillo 0.8',
    platform: 'Embedded devices',
    version: '-',
    grade: 'X'
  },
  {
    engine: 'Misc',
    browser: 'Links',
    platform: 'Text only',
    version: '-',
    grade: 'X'
  },
  {
    engine: 'Misc',
    browser: 'Lynx',
    platform: 'Text only',
    version: '-',
    grade: 'X'
  },
  {
    engine: 'Misc',
    browser: 'IE Mobile',
    platform: 'Windows Mobile 6',
    version: '-',
    grade: 'C'
  },
  {
    engine: 'Misc',
    browser: 'PSP browser',
    platform: 'PSP',
    version: '-',
    grade: 'C'
  },
  {
    engine: 'Other browsers',
    browser: 'All others',
    platform: '-',
    version: '-',
    grade: 'U'
  }
].map(function (item, index) {
  return Object.assign({}, item, {
    id: index + 1
  });
});
